import request from '@/util/axios';

/**
 * 获取角色列表
 * @param {Object} params 查询参数
 * @returns {Promise} 返回Promise对象
 */
export function getRoleList(params) {
  return request({
    url: '/role/list',
    method: 'get',
    params
  });
}

/**
 * 获取角色详情
 * @param {Number} id 角色ID
 * @returns {Promise} 返回Promise对象
 */
export function getRoleInfo(id) {
  return request({
    url: `/role/info/${id}`,
    method: 'get'
  });
}

/**
 * 添加角色
 * @param {Object} data 角色数据
 * @returns {Promise} 返回Promise对象
 */
export function addRole(data) {
  return request({
    url: '/role/add',
    method: 'post',
    data
  });
}

/**
 * 更新角色
 * @param {Object} data 角色数据
 * @returns {Promise} 返回Promise对象
 */
export function updateRole(data) {
  return request({
    url: '/role/update',
    method: 'post',
    data
  });
}

/**
 * 删除角色
 * @param {Array} ids 角色ID数组
 * @returns {Promise} 返回Promise对象
 */
export function deleteRoles(ids) {
  return request({
    url: '/role/deleteCheck',
    method: 'delete',
    data: { data: ids }
  });
}

/**
 * 获取角色菜单ID列表
 * @param {Number} id 角色ID
 * @returns {Promise} 返回Promise对象
 */
export function getRoleMenuIds(id) {
  return request({
    url: `/role/getMenuIds/${id}`,
    method: 'get'
  });
}

/**
 * 分配菜单给角色
 * @param {Number} roleId 角色ID
 * @param {Array} menuIds 菜单ID数组
 * @returns {Promise} 返回Promise对象
 */
export function assignMenuToRole(roleId, menuIds) {
  return request({
    url: `/role/asMenu/${roleId}`,
    method: 'post',
    data: menuIds
  });
}

/**
 * 获取角色权限ID列表
 * @param {Number} id 角色ID
 * @returns {Promise} 返回Promise对象
 */
export function getRolePermissionIds(id) {
  return request({
    url: `/role/getPermissionIds/${id}`,
    method: 'get'
  });
}

/**
 * 分配权限给角色
 * @param {Number} roleId 角色ID
 * @param {Array} permissionIds 权限ID数组
 * @returns {Promise} 返回Promise对象
 */
export function assignPermissionToRole(roleId, permissionIds) {
  return request({
    url: `/role/asPermission/${roleId}`,
    method: 'post',
    data: permissionIds
  });
} 